-- 战斗模块
local ConfigLoader = require("config.loader")
local Settings = require("config.settings")
local config = ConfigLoader.load(Settings.CURRENT_GAME)
local logger = require "utils.logger"
local window = require "modules.window"
local stateManager = require "utils.state_manager"
local tslib = require "TSLib"

local Combat = {}

-- 处理战斗
function Combat.handleCombat()
    logger.info("进入战斗状态")

    -- 检查是否需要自动攻击
    if not Combat.isAutoAttacking() then
        Combat.startAutoAttack()
    end
end

-- 检查是否在自动攻击状态
function Combat.isAutoAttacking()
    return multiColor(config.COMBAT.AUTO_ATTACK_STATUS_COLORS)
end

-- 开始自动攻击
function Combat.startAutoAttack()
    logger.info("开始自动攻击")
    if Combat.isAutoAttacking() then
        return
    end
    tap(config.COMBAT.AUTO_ATTACK_COORDS[1], config.COMBAT.AUTO_ATTACK_COORDS[2])
    mSleep(config.COMBAT.ATTACK_INTERVAL)
end

-- 停止自动攻击
function Combat.stopAutoAttack()
    logger.info("停止自动攻击")
    if Combat.isAutoAttacking() then
        tap(config.COMBAT.AUTO_ATTACK_COORDS[1], config.COMBAT.AUTO_ATTACK_COORDS[2])
    end
end

-- 是否在攻击怪物
function Combat.isAttackingMonster()
    logger.info("检查是否在攻击怪物")
    return multiColor(config.COMBAT.ATTACKING_MONSTER_COLORS)
end

-- 是否存在敌人
function Combat.isExistEnemy()
    return multiColor(config.COMBAT.EXIST_ENEMY_COLORS)
end

-- 攻击敌人
function Combat.attackEnemy()
    logger.info("检测是否存在敌人")
    window.closeOtherWindow()
    if Combat.isExistEnemy() then
        logger.info("存在敌人，攻击")
        tap(config.COMBAT.EXIST_ENEMY_COLORS[1][1], config.COMBAT.EXIST_ENEMY_COLORS[1][2])
        Combat.startAutoAttack()
        return
    end
end

return Combat